task DisPlayPlayer
{
		let SX=GetCenterX-60;
		let SY=GetCenterY-150;
		let scx=1;
		let scy=1;
		let obj = Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(obj, imgPlayer);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
	//	ObjEffect_SetRenderState(obj, ADD); 
		ObjEffect_CreateVertex(obj, 4);

		ObjEffect_SetVertexXY(obj, 0, -8, -11);
		ObjEffect_SetVertexXY(obj, 1,8,  -11);
		ObjEffect_SetVertexXY(obj, 2,8, 11);
		ObjEffect_SetVertexXY(obj, 3,  -8,  11);
		
		ObjEffect_SetVertexUV(obj, 0,  0,  0);
		ObjEffect_SetVertexUV(obj, 1,  24, 0);
		ObjEffect_SetVertexUV(obj, 2, 24, 32);
		ObjEffect_SetVertexUV(obj, 3, 0, 32);

		ObjEffect_SetVertexColor(obj,0,255,255,200,200);
		ObjEffect_SetVertexColor(obj,1,255,255,200,200);
		ObjEffect_SetVertexColor(obj,2,255,255,200,200);
		ObjEffect_SetVertexColor(obj,3,255,255,200,200);

		ObjEffect_SetLayer(obj,6);
		Obj_SetPosition(obj,96,163);

		ObjEffect_SetScale(obj, scx,scy);

		let AdjustY=1;
		let AdjustX=1;
		let AdjustX2=1;
		let count=0;
		loop
		{
			Obj_SetPosition(obj,SX+PlayerPosition[0]*20,SY+PlayerPosition[1]*20);
			alternative(PlayerDirection)
			case(0)
			{
				AdjustY=2;
			}
			case(90)
			{
				AdjustY=3;
			}
			case(180)
			{
				AdjustY=4;
			}
			case(270)
			{
				AdjustY=1;
			}
			if(count<=10)
			{
				AdjustX=1+AdjustX2;
			}
			else if(count<=20)
			{
				AdjustX=2+AdjustX2;
			}
			else if(count<=30)
			{
				AdjustX=3+AdjustX2;
			}
			else if(count<=40)
			{
				AdjustX=2+AdjustX2;
			}
		//	count+=1;
			if(count>=40){count=0;}
			ObjEffect_SetVertexUV(obj, 0,  24*(AdjustX-1),  32*(AdjustY-1));
			ObjEffect_SetVertexUV(obj, 1,  24*AdjustX, 32*(AdjustY-1));
			ObjEffect_SetVertexUV(obj, 2, 24*AdjustX, 32*AdjustY);
			ObjEffect_SetVertexUV(obj, 3, 24*(AdjustX-1), 32*AdjustY);
			yield;
		}
}

task DisPlayMagicStone
{
		let SX=GetCenterX-60;
		let SY=GetCenterY-150;
		let scx=1;
		let scy=1;
		let obj = Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(obj, imgShot);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
	//	ObjEffect_SetRenderState(obj, ADD); 
		ObjEffect_CreateVertex(obj, 4);
		ObjEffect_SetVertexXY(obj, 0, -10, -10);
		ObjEffect_SetVertexXY(obj, 1,10,  -10);
		ObjEffect_SetVertexXY(obj, 2,10, 10);
		ObjEffect_SetVertexXY(obj, 3,  -10,  10);
		
		ObjEffect_SetVertexUV(obj, 0,  224,  338);
		ObjEffect_SetVertexUV(obj, 1,  256, 338);
		ObjEffect_SetVertexUV(obj, 2,256, 370);
		ObjEffect_SetVertexUV(obj, 3, 224, 370);


		ascent(i in 0..4)
		{
		ObjEffect_SetVertexColor(obj,i,255,100,255,100);
		}

		ObjEffect_SetLayer(obj,6);
		Obj_SetPosition(obj,96,163);

		ObjEffect_SetScale(obj, scx,scy);
		loop
		{
			Obj_SetPosition(obj,SX+MagicStonePosition[0]*20,SY+MagicStonePosition[1]*20);
			yield;
		}
}

task DisPlayPedestal
{
		let SX=GetCenterX-60;
		let SY=GetCenterY-150;
		let scx=1;
		let scy=1;
		let obj = Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(obj, imgShot);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
	//	ObjEffect_SetRenderState(obj, ADD); 
		ObjEffect_CreateVertex(obj, 4);
		ObjEffect_SetVertexXY(obj, 0, -10, -10);
		ObjEffect_SetVertexXY(obj, 1,10,  -10);
		ObjEffect_SetVertexXY(obj, 2,10, 10);
		ObjEffect_SetVertexXY(obj, 3,  -10,  10);
		
		ObjEffect_SetVertexUV(obj, 0,  224,  338);
		ObjEffect_SetVertexUV(obj, 1,  256, 338);
		ObjEffect_SetVertexUV(obj, 2,256, 370);
		ObjEffect_SetVertexUV(obj, 3, 224, 370);


		ascent(i in 0..4)
		{
	//	ObjEffect_SetVertexColor(obj,i,255,100,255,100);
		}

		ObjEffect_SetLayer(obj,5);
		Obj_SetPosition(obj,96,163);

		ObjEffect_SetScale(obj, scx,scy);
		loop
		{
			Obj_SetPosition(obj,SX+PedestalPosition[0]*20,SY+PedestalPosition[1]*20);
			yield;
		}
}

task DisPlayGoal
{
		let SX=GetCenterX-60;
		let SY=GetCenterY-150;
		let scx=1;
		let scy=1;
		let obj = Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(obj, imgGoal);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
	//	ObjEffect_SetRenderState(obj, ADD); 
		ObjEffect_CreateVertex(obj, 4);
		ObjEffect_SetVertexXY(obj, 0, -10, -10);
		ObjEffect_SetVertexXY(obj, 1,10,  -10);
		ObjEffect_SetVertexXY(obj, 2,10, 10);
		ObjEffect_SetVertexXY(obj, 3,  -10,  10);
		
		ObjEffect_SetVertexUV(obj, 0,  0,  0);
		ObjEffect_SetVertexUV(obj, 1,  20, 0);
		ObjEffect_SetVertexUV(obj, 2,20, 16);
		ObjEffect_SetVertexUV(obj, 3, 0, 16);


		ObjEffect_SetLayer(obj,5);
		Obj_SetPosition(obj,96,163);

		let flag=0;
		let count=0;
		ObjEffect_SetScale(obj, scx,scy);
		loop
		{
			Obj_SetPosition(obj,SX+GoalPosition[0]*20,SY+GoalPosition[1]*20);
			if(round(PedestalPosition[0])==round(MagicStonePosition[0]) && round(PedestalPosition[1])==round(MagicStonePosition[1]))
			{
				flag=1;
			}
			else
			{
				flag=0;
			}
			if(flag==1)
			{
				if(count<30)
				{
				count+=1;
				}
			}
			else
			{
				if(count>0)
				{
				count-=1;
				}
			}
			ObjEffect_SetVertexUV(obj, 0,  0,  48-16*floor(count/10));
			ObjEffect_SetVertexUV(obj, 1,  20, 48-16*floor(count/10));
			ObjEffect_SetVertexUV(obj, 2,20, 64-16*floor(count/10));
			ObjEffect_SetVertexUV(obj, 3, 0, 64-16*floor(count/10));
			yield;
		}
}

task GraundDraw
{
ascent(i in 0..13*14)
{
DisPlayGraund(i);
}

}

task DisPlayGraund(num)
{
		let SX=GetCenterX-60;
		let SY=GetCenterY-150;
		let NumX=num%13;
		let NumY=floor(num/13);
		let scx=1;
		let scy=1;
		let obj = Obj_Create(OBJ_EFFECT);
		alternative(Graund[num])
		case(0)
		{
			ObjEffect_SetTexture(obj, imgPlain);
		}
		case(1)
		{
			ObjEffect_SetTexture(obj, imgWater);
		}
		case(2)
		{
			ObjEffect_SetTexture(obj, imgWood);
		}
		case(3)
		{
			ObjEffect_SetTexture(obj, imgMagma);
		}
		case(4)
		{
			ObjEffect_SetTexture(obj, imgAllow1);
			ObjEffect_SetAngle(obj,0,0,0);
		}
		case(5)
		{
			ObjEffect_SetTexture(obj, imgAllow2);
			ObjEffect_SetAngle(obj,0,0,90);
		}
		case(6)
		{
			ObjEffect_SetTexture(obj, imgAllow3);
			ObjEffect_SetAngle(obj,0,0,180);
		}
		case(7)
		{
			ObjEffect_SetTexture(obj, imgAllow4);
			ObjEffect_SetAngle(obj,0,0,270);
		}
		case(8)
		{
			ObjEffect_SetTexture(obj, imgFloor);
		}
		case(9)
		{
			ObjEffect_SetTexture(obj, imgFloor);
		}
		case(-1)
		{
			ObjEffect_SetTexture(obj, imgCircle);
		}
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
	//	ObjEffect_SetRenderState(obj, ADD); 
		ObjEffect_CreateVertex(obj, 4);
		ObjEffect_SetVertexXY(obj, 0, -10, -10);
		ObjEffect_SetVertexXY(obj, 1,10,  -10);
		ObjEffect_SetVertexXY(obj, 2,10, 10);
		ObjEffect_SetVertexXY(obj, 3,  -10,  10);
		
		ObjEffect_SetVertexUV(obj, 0,  0,  0);
		ObjEffect_SetVertexUV(obj, 1,  30, 0);
		ObjEffect_SetVertexUV(obj, 2, 30, 30);
		ObjEffect_SetVertexUV(obj, 3, 0, 30);

		ObjEffect_SetVertexColor(obj,0,255,255,200,200);
		ObjEffect_SetVertexColor(obj,1,255,255,200,200);
		ObjEffect_SetVertexColor(obj,2,255,255,200,200);
		ObjEffect_SetVertexColor(obj,3,255,255,200,200);

		ObjEffect_SetLayer(obj,4);
		Obj_SetPosition(obj,96,163);

		let count=0;
		let rectX=0;
		let rectY=0;
		ObjEffect_SetScale(obj, scx,scy);

		alternative(Graund[num])
		case(-1)
		{
			ObjEffect_SetVertexUV(obj, 0,  0,  0);
			ObjEffect_SetVertexUV(obj, 1,  256, 0);
			ObjEffect_SetVertexUV(obj, 2, 256, 256);
			ObjEffect_SetVertexUV(obj, 3, 0, 256);
			ObjEffect_SetScale(obj, scx*0.9,scy*0.9);
		}

		loop
		{
		alternative(Graund[num])
		case(0)
		{
			ObjEffect_SetTexture(obj, imgPlain);
		}
		case(1)
		{
			ObjEffect_SetTexture(obj, imgWater);
		}
		case(2)
		{
			ObjEffect_SetTexture(obj, imgWood);
		}
		case(3)
		{
			ObjEffect_SetTexture(obj, imgMagma);
		}
		case(4)
		{
			ObjEffect_SetTexture(obj, imgAllow1);
		}
		case(5)
		{
			ObjEffect_SetTexture(obj, imgAllow2);
		}
		case(6)
		{
			ObjEffect_SetTexture(obj, imgAllow3);
		}
		case(7)
		{
			ObjEffect_SetTexture(obj, imgAllow4);
		}
		case(8)
		{
			ObjEffect_SetTexture(obj, imgFloor);
		}
		case(9)
		{
			ObjEffect_SetTexture(obj, imgFloor);
		}
		case(-1)
		{
			ObjEffect_SetTexture(obj, imgCircle);
		}
			Obj_SetPosition(obj,SX+NumX*20,SY+NumY*20);
			if(Graund[num]==3)
			{
				ObjEffect_SetVertexUV(obj, 0,  0,  0);
				ObjEffect_SetVertexUV(obj, 1,  16, 0);
				ObjEffect_SetVertexUV(obj, 2, 16, 16);
				ObjEffect_SetVertexUV(obj, 3, 0, 16);
				ObjEffect_SetScale(obj, scx,scy);
			}
			else if(Graund[num]==-1)
			{
				ObjEffect_SetVertexUV(obj, 0,  0,  0);
				ObjEffect_SetVertexUV(obj, 1,  256, 0);
				ObjEffect_SetVertexUV(obj, 2, 256, 256);
				ObjEffect_SetVertexUV(obj, 3, 0, 256);
				ObjEffect_SetScale(obj, scx*0.9,scy*0.9);
			}
			else
			{
				ObjEffect_SetVertexUV(obj, 0,  0,  0);
				ObjEffect_SetVertexUV(obj, 1,  30, 0);
				ObjEffect_SetVertexUV(obj, 2, 30, 30);
				ObjEffect_SetVertexUV(obj, 3, 0, 30);
				ObjEffect_SetScale(obj, scx,scy);
			}

			yield;
		}
}


//////////////////////////////////////////////////////////////////////////////////////////
task MenuBackDraw
{//j[̍wi`悷^XNBݖgpB
		let obj = Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(obj, imgBG);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
	//	ObjEffect_SetRenderState(obj, ADD); 
		ObjEffect_CreateVertex(obj, 4);
		ObjEffect_SetVertexXY(obj, 0, 0, 0);
		ObjEffect_SetVertexXY(obj, 1, 640,  0);
		ObjEffect_SetVertexXY(obj, 2, 640, 480);
		ObjEffect_SetVertexXY(obj, 3,  0,  480);
		
		ObjEffect_SetVertexUV(obj, 0,  0,  0);
		ObjEffect_SetVertexUV(obj, 1,  384, 0);
		ObjEffect_SetVertexUV(obj, 2, 384,  448);
		ObjEffect_SetVertexUV(obj, 3, 0, 448);
		ObjEffect_SetLayer(obj,4);
		ObjEffect_SetScale(obj, 1.0,1.0);

		Obj_SetPosition(obj,0,0);
		loop
		{
		if(StageState==Menu || StageState==Loading || StageState==Exit)
		{
			ascent(let i in 0..4)
			{
			ObjEffect_SetVertexColor(obj,i,255,255,255,255);
			}
		}
		else
		{
			ascent(let i in 0..4)
			{
			ObjEffect_SetVertexColor(obj,i,0,255,255,255);
			}
		}
		if(StageState==Loading)
		{
			ObjEffect_SetLayer(obj,7);
		}
		else
		{
			ObjEffect_SetLayer(obj,4);
		}
		yield;
		}
}

task StageObject
{
ascent(i in 0..13*14)
{
	Block(i);
	Anti(i);
}
}
////////////////////////////////////////////
task Block(num)
{
		Object[num]=2;
		let SX=GetCenterX-60;
		let SY=GetCenterY-150;
		let scx=1;
		let scy=1;
		let NumX=num%13;
		let NumY=floor(num/13);

		let MoveState=0;
		let obj = Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(obj, imgBlock);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
	//	ObjEffect_SetRenderState(obj, ADD); 
		ObjEffect_CreateVertex(obj, 4);
		ObjEffect_SetVertexXY(obj, 0, -8,-8);
		ObjEffect_SetVertexXY(obj, 1,8,  -8);
		ObjEffect_SetVertexXY(obj, 2,8, 8);
		ObjEffect_SetVertexXY(obj, 3,  -8,  8);

		ObjEffect_SetVertexUV(obj, 0,  0,  0);
		ObjEffect_SetVertexUV(obj, 1,  30, 0);
		ObjEffect_SetVertexUV(obj, 2,30, 30);
		ObjEffect_SetVertexUV(obj, 3, 0, 30);
/*
		ObjEffect_SetVertexColor(obj,0,255,100,100,255);
		ObjEffect_SetVertexColor(obj,1,255,100,100,255);
		ObjEffect_SetVertexColor(obj,2,255,100,100,255);
		ObjEffect_SetVertexColor(obj,3,255,100,100,255);
*/
		ObjEffect_SetLayer(obj,5);
		Obj_SetPosition(obj,96,163);
		let angle=0;
	//	ObjEffect_SetScale(obj, scx*0.8,scy*0.8);
		while(!Obj_BeDeleted(obj))
		{
			Obj_SetPosition(obj,SX+NumX*20,SY+NumY*20);
			if(Object[num]==2)
			{
				ascent( i in 0..4)
				{
					ObjEffect_SetVertexColor(obj,i,255,255,255,255);
				}
			}
			else
			{
				ascent( i in 0..4)
				{
					ObjEffect_SetVertexColor(obj,i,0,255,255,255);
				}
			}
			yield;
		}
}

task Anti(num)
{
		Object[num]=3;
		let SX=GetCenterX-60;
		let SY=GetCenterY-150;
		let scx=1;
		let scy=1;
		let NumX=num%13;
		let NumY=floor(num/13);
		let ExplodeCount=180;
		if(Graund[num]==3)
		{
			ExplodeCount=1;
		}
			else
		{
			ExplodeCount=179;
		}
		let MoveState=0;
		let obj = Obj_Create(OBJ_EFFECT);
		ObjEffect_SetTexture(obj, imgShot);
		ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLEFAN);
	//	ObjEffect_SetRenderState(obj, ADD); 
		ObjEffect_CreateVertex(obj, 4);
		ObjEffect_SetVertexXY(obj, 0, -8,-8);
		ObjEffect_SetVertexXY(obj, 1,8,  -8);
		ObjEffect_SetVertexXY(obj, 2,8, 8);
		ObjEffect_SetVertexXY(obj, 3,  -8,  8);

		ObjEffect_SetVertexUV(obj, 0,  384,  206);
		ObjEffect_SetVertexUV(obj, 1,  416, 206);
		ObjEffect_SetVertexUV(obj, 2,416, 238);
		ObjEffect_SetVertexUV(obj, 3, 384, 238);
/*
		ObjEffect_SetVertexColor(obj,0,255,100,100,255);
		ObjEffect_SetVertexColor(obj,1,255,100,100,255);
		ObjEffect_SetVertexColor(obj,2,255,100,100,255);
		ObjEffect_SetVertexColor(obj,3,255,100,100,255);
*/
		ObjEffect_SetLayer(obj,5);
		Obj_SetPosition(obj,96,163);
		let angle=0;
	//	ObjEffect_SetScale(obj, scx*0.8,scy*0.8);
		while(!Obj_BeDeleted(obj))
		{
			Obj_SetPosition(obj,SX+NumX*20,SY+NumY*20);
			if(Object[num]==3)
			{
				ascent( i in 0..4)
				{
					ObjEffect_SetVertexColor(obj,i,255,255,255,255);
				}
			}
			else
			{
				ascent( i in 0..4)
				{
					ObjEffect_SetVertexColor(obj,i,0,255,255,255);
				}
			}
			yield;
		}
}
